#ifndef UUID_C378468D5D6B4CF29EEBED9B48E7645E
#define UUID_C378468D5D6B4CF29EEBED9B48E7645E

#ifdef __cplusplus
extern "C" {
#endif

enum flip_button_name
{
    flip_kbEscape,
    flip_kbRangeBegin = flip_kbEscape,
	flip_kbF1,
	flip_kbF2,
	flip_kbF3,
	flip_kbF4,
	flip_kbF5,
	flip_kbF6,
	flip_kbF7,
	flip_kbF8,
	flip_kbF9,
	flip_kbF10,
	flip_kbF11,
	flip_kbF12,
	flip_kb0,
	flip_kb1,
	flip_kb2,
	flip_kb3,
	flip_kb4,
	flip_kb5,
	flip_kb6,
	flip_kb7,
	flip_kb8,
	flip_kb9,
	flip_kbTab,
	flip_kbReturn,
	flip_kbSpace,
	flip_kbLeftShift,
	flip_kbRightShift,
	flip_kbLeftControl,
	flip_kbRightControl,
	flip_kbLeftAlt,
	flip_kbRightAlt,
	flip_kbLeftMeta,
	flip_kbRightMeta,
	flip_kbBackspace,
	flip_kbLeft,
	flip_kbRight,
	flip_kbUp,
	flip_kbDown,
	flip_kbHome,
	flip_kbEnd,
	flip_kbInsert,
	flip_kbDelete,
	flip_kbPageUp,
	flip_kbPageDown,
	flip_kbEnter,
	flip_kbNumpad0,
	flip_kbNumpad1,
	flip_kbNumpad2,
	flip_kbNumpad3,
	flip_kbNumpad4,
	flip_kbNumpad5,
	flip_kbNumpad6,
	flip_kbNumpad7,
	flip_kbNumpad8,
	flip_kbNumpad9,
	flip_kbNumpadAdd,
	flip_kbNumpadSubtract,
	flip_kbNumpadMultiply,
	flip_kbNumpadDivide,
	
	flip_kbQ,
	flip_kbW,
	flip_kbE,
	flip_kbR,
	flip_kbT,
	flip_kbY,
	flip_kbU,
	flip_kbI,
	flip_kbO,
	flip_kbP,
	flip_kbLeftBracket,
	flip_kbRightBracket,
	flip_kbA,
	flip_kbS,
	flip_kbD,
	flip_kbF,
	flip_kbG,
	flip_kbH,
	flip_kbJ,
	flip_kbK,
	flip_kbL,
	flip_kbSemicolon,
	flip_kbApostrophe,
	flip_kbGrave,    /* accent grave */
	flip_kbBackslash,
	flip_kbZ,
	flip_kbX,
	flip_kbC,
	flip_kbV,
	flip_kbB,
	flip_kbN,
	flip_kbM,
	
	flip_kbRangeEnd = flip_kbM,

    flip_msRangeBegin,
    flip_msLeft = flip_msRangeBegin,
    flip_msRight,
    flip_msMiddle,
    flip_msWheelUp,
    flip_msWheelDown,
    flip_msRangeEnd,
    
    flip_gpRangeBegin,
    flip_gpLeft = flip_gpRangeBegin,
    flip_gpRight,
    flip_gpUp,
    flip_gpDown,
    flip_gpButton0,
    flip_gpButton1,
    flip_gpButton2,
    flip_gpButton3,
    flip_gpButton4,
    flip_gpButton5,
    flip_gpButton6,
    flip_gpButton7,
    flip_gpButton8,
    flip_gpButton9,
    flip_gpButton10,
    flip_gpButton11,
    flip_gpButton12,
    flip_gpButton13,
    flip_gpButton14,
    flip_gpButton15,
    flip_gpRangeEnd = flip_gpButton15,
        
    flip_kbNum = flip_kbRangeEnd - flip_kbRangeBegin + 1,
    flip_msNum = flip_msRangeEnd - flip_msRangeBegin + 1,
    flip_gpNum = flip_gpRangeEnd - flip_gpRangeBegin + 1,
    
    flip_numButtons = flip_gpRangeEnd,
	flip_noButton = 0xffffffff
};

void flip_init_keys_native_to_flip();

extern int const flip_keys_flip_to_native[flip_kbRangeEnd + 1];
extern int flip_keys_native_to_flip[];

#ifdef __cplusplus
} // extern "C"
#endif

#endif // UUID_C378468D5D6B4CF29EEBED9B48E7645E
